package com.fowo.api.entity;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fowo.api.common.annotaion.*;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

/**
 * AmazonSalesStatement
 */
@DS("ds24")
@Getter
@Setter
@TableName(value = "amazon_sales_statement", autoResultMap = true)
@Schema(title = "亚马逊销售统计表")
public class AmazonSalesStatement implements Serializable {

  /**
   * 编号
   */
  @TableField(value = "`id`")
  @TableId(type = IdType.ASSIGN_ID)
  @Schema(title = "编号")
  private Long id;

  /**
   * 亚马逊订单号
   */
  @TableField(value = "`amazon_order_id`")
  @Schema(title = "亚马逊订单号")
  private String amazonOrderId;

  /**
   * 卖家为订单提供的唯一编号
   */
  @TableField(value = "`merchant_order_id`")
  @Schema(title = "卖家为订单提供的唯一编号")
  private String merchantOrderId;

  /**
   * 创建时间
   */
  @TableField(value = "`create_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "创建时间")
  private java.util.Date createTime;

  /**
   * 创建人
   */
  @TableField(value = "`create_user`")
  @Schema(title = "创建人")
  private Long createUser;

  /**
   * 更新时间
   */
  @TableField(value = "`last_update_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "更新时间")
  private java.util.Date lastUpdateTime;

  /**
   * 更新人
   */
  @TableField(value = "`last_update_user`")
  @Schema(title = "更新人")
  private Long lastUpdateUser;

  /**
   * 删除标记
   */
  @TableField(value = "`del_flag`")
  @TableLogic
  @Schema(title = "删除标记")
  private Boolean delFlag;

  /**
   * 下单日期
   */
  @TableField(value = "`purchase_date`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "下单日期")
  private java.util.Date purchaseDate;

  /**
   * 订单最近更新时间
   */
  @TableField(value = "`last_updated_date`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "订单最近更新时间")
  private java.util.Date lastUpdatedDate;

  /**
   * 订单的当前状态
   */
  @TableField(value = "`order_status`")
  @Schema(title = "订单的当前状态")
  private String orderStatus;

  /**
   * 订单的配送方式
   */
  @TableField(value = "`fulfillment_channel`")
  @Schema(title = "订单的配送方式")
  private String fulfillmentChannel;

  /**
   * 下单渠道
   */
  @TableField(value = "`sales_channel`")
  @Schema(title = "下单渠道")
  private String salesChannel;

  /**
   * CBA/WBA 订单下单的子渠道
   */
  @TableField(value = "`order_channel`")
  @Schema(title = "CBA/WBA 订单下单的子渠道")
  private String orderChannel;

  /**
   * 配送服务类型
   */
  @TableField(value = "`ship_service_level`")
  @Schema(title = "配送服务类型")
  private String shipServiceLevel;

  /**
   * 标题
   */
  @TableField(value = "`product_name`")
  @Schema(title = "标题")
  private String productName;

  /**
   * MSKU
   */
  @TableField(value = "`msku`")
  @Schema(title = "MSKU")
  private String msku;

  /**
   * ASIN
   */
  @TableField(value = "`asin`")
  @Schema(title = "ASIN")
  private String asin;

  /**
   * 该商品在订单内的当前状态
   */
  @TableField(value = "`item_status`")
  @Schema(title = "该商品在订单内的当前状态")
  private String itemStatus;

  /**
   * 此商品的购买数量
   */
  @TableField(value = "`quantity`")
  @Schema(title = "此商品的购买数量")
  private String quantity;

  /**
   * 币种
   */
  @TableField(value = "`currency`")
  @Schema(title = "币种")
  private String currency;

  /**
   * 买家为商品支付的金额
   */
  @TableField(value = "`item_price`")
  @Schema(title = "买家为商品支付的金额")
  private java.math.BigDecimal itemPrice;

  /**
   * 买家为商品税支付的金额
   */
  @TableField(value = "`item_tax`")
  @Schema(title = "买家为商品税支付的金额")
  private java.math.BigDecimal itemTax;

  /**
   * 买家支付的运费金额
   */
  @TableField(value = "`shipping_price`")
  @Schema(title = "买家支付的运费金额")
  private java.math.BigDecimal shippingPrice;

  /**
   * 买家为运费税支付的金额
   */
  @TableField(value = "`shipping_tax`")
  @Schema(title = "买家为运费税支付的金额")
  private java.math.BigDecimal shippingTax;

  /**
   * 买家为礼品包装支付的金额
   */
  @TableField(value = "`gift_wrap_price`")
  @Schema(title = "买家为礼品包装支付的金额")
  private java.math.BigDecimal giftWrapPrice;

  /**
   * 买家为礼品包装税支付的金额
   */
  @TableField(value = "`gift_wrap_tax`")
  @Schema(title = "买家为礼品包装税支付的金额")
  private java.math.BigDecimal giftWrapTax;

  /**
   * 应用于订单商品的所有促销折扣的总和
   */
  @TableField(value = "`item_promotion_discount`")
  @Schema(title = "应用于订单商品的所有促销折扣的总和")
  private java.math.BigDecimal itemPromotionDiscount;

  /**
   * 应用于配送的促销折扣
   */
  @TableField(value = "`ship_promotion_discount`")
  @Schema(title = "应用于配送的促销折扣")
  private java.math.BigDecimal shipPromotionDiscount;

  /**
   * 配送城市
   */
  @TableField(value = "`ship_city`")
  @Schema(title = "配送城市")
  private String shipCity;

  /**
   * 配送状态
   */
  @TableField(value = "`ship_state`")
  @Schema(title = "配送状态")
  private String shipState;

  /**
   * 邮政编码
   */
  @TableField(value = "`ship_postal_code`")
  @Schema(title = "邮政编码")
  private String shipPostalCode;

  /**
   * 配送国家
   */
  @TableField(value = "`ship_country`")
  @Schema(title = "配送国家")
  private String shipCountry;

  /**
   * 应用于此订单商品的所有商品促销的列表
   */
  @TableField(value = "`promotion_ids`")
  @Schema(title = "应用于此订单商品的所有商品促销的列表")
  private String promotionIds;

  /**
   * 是否商务订单
   */
  @TableField(value = "`is_business_order`")
  @Schema(title = "是否商务订单")
  private Boolean isBusinessOrder;

  /**
   * 采购订单号
   */
  @TableField(value = "`purchase_order_number`")
  @Schema(title = "采购订单号")
  private String purchaseOrderNumber;

  /**
   * 制定价格
   */
  @TableField(value = "`price_designation`")
  @Schema(title = "制定价格")
  private String priceDesignation;

  /**
   * 是否要签收
   */
  @TableField(value = "`signature_confirmation_recommended`")
  @Schema(title = "是否要签收")
  private Boolean signatureConfirmationRecommended;

  /**
   * 店铺id
   */
  @TableField(value = "`sid`")
  @Schema(title = "店铺id")
  private Long sid;

  /**
   * 国家
   */
  @TableField(value = "`country`")
  @Schema(title = "国家")
  private Long country;

  /**
   * 统计维度
   */
  @TableField(value = "`dimension`")
  @Schema(title = "统计维度")
  private String dimension;

  /**
   * 父ASIN
   */
  @TableField(value = "`parent_asin`")
  @Schema(title = "父ASIN")
  private String parentAsin;

  /**
   * sku
   */
  @TableField(value = "`product_sku`")
  @Schema(title = "sku")
  private String productSku;

  /**
   * 款名
   */
  @TableField(value = "`spu_name`")
  @Schema(title = "款名")
  private String spuName;

  /**
   * 产品类型
   */
  @TableField(value = "`type`")
  @Schema(title = "产品类型")
  private String type;

  /**
   * 内部listingID
   */
  @TableField(value = "`innerLID`")
  @Schema(title = "内部listingID")
  private Long innerLID;
}
